<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 1.定义函数有几种方式
            命名函数：function fn() {};

            匿名函数：let fn = function() {};

            自执行函数：
            (function (){
                函数体；
            })();

            实例化对象：let fn = new Function();
                                */

        /* 2.retrun关键字的意义
            停止当前函数的执行，并且返回对应的值 */

        /* 3.函数是否可以重定义，会有什么事情发生
            在js中，函数不可以重定义，因为它和var声明的变量一样，上面已经定义的函数，如果下面再定义一个相同的函数
            那么下面的函数将会把上面的函数覆盖掉 */
            
        /*// 4.var和function关键字有什么特别功能？
            var定义的变量可以进行变量提升
            function可以形成一个函数环境，在里面声明的变量和函数无法被外部调用
        */
        

        // 5.请定义一个函数，该函数功能为，传入一个值，返回这个值的平方值
            function num(a) {
                a = a * a;
                return a;
            }
            console.log(num(2));


        // 6.请写出一个函数，功能为：传入三个值，则返回这三个值最大的那个值
            //方法一
            function getMax(num1, num2, num3) {
                return Math.max(num1, num2, num3);
            }
            console.log(getMax(1, 7, 9));

            //方法二
            function getMax(num1, num2, num3) {
                if (num1 > num2 && num1 > num3) {
                    return num1;
                } else if (num2 > num1 && num2 > num3) {
                    return num2;
                } else {
                    return num3;
                }
            }
            console.log(getMax(1, 7, 9));



        // 7.请定义一个函数，输入一个N值，则计算出该值的阶乘，即：n! = 1*2*3*4*5*6*...*N
            function Factorial(b) {
                let j = 1;
                for(let i = 1; i <= b; i++ ) {
                    j = j * i
                }
                return j;
            }
            console.log(Factorial(3));//6
            console.log(Factorial(4));//24
            console.log(Factorial(6));//720


        // 8.使用add方法，让console输出的结果为true。  （面试题）
        // 	let num = 10; 
        // 	console.log(num.add(20) == 10); 

    </script>
</body>

</html>